<%--
  Created by IntelliJ IDEA.
  User: liangliang
  Date: 2018/6/26
  Time: 10:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>ModelAndView</title>
</head>
<body>
<h2>ModelAndView</h2>
<ul>
    <li>控制器处理方法的返回值如果为 ModelAndView, 则其既 包含视图信息，也包含模型数据信息。</li>
    <li>添加模型数据:</li>
    <ul>
        <li>MoelAndView addObject(String attributeName, Object attributeValue)</li>
        <li>ModelAndView addAllObject(Map<`String`, ?> modelMap)</li>
    </ul>
    <li>设置视图:</li>
    <ul>
        <li> void setView(View view)</li>
        <li> void setViewName(String viewName)j</li>
    </ul>
</ul>

<h2><a href="https://www.cnblogs.com/caoyc/p/5635914.html">@SessionAttributes注解</a></h2>
<ul>
    <li>若希望在多个请求之间共用某个模型属性数据，则可以在 控制器类上标注一个 @SessionAttributes, Spring MVC 将在模型中对应的属性暂存到 HttpSession 中</li>
    <li>@SessionAttributes 除了可以通过属性名指定需要放到会 话中的属性外，还可以通过模型属性的对象类型指定哪些 模型属性需要放到会话中
    </li>
    <ul>
        <li>@SessionAttributes(types=User.class) 会将隐含模型中所有类型为 User.class 的属性添加到会话中。</li>
        <li>@SessionAttributes(value={“user1”, “user2”})</li>
        <li>@SessionAttributes(types={User.class, Dept.class})</li>
        <li>@SessionAttributes(value={“user1”, “user2”}, types={Dept.class})</li>
    </ul>
</ul>

<h2>request中的数据：</h2>
<span>username: ${userName}</span>
<br>
<span>age: ${age}</span>

<h2>session中的数据：</h2>
<span>username: ${sessionScope.userName}</span>
<br>
<span>age: ${sessionScope.age}</span>
</body>
</html>
